﻿/**
* 单点登录封装
*/
(function () {
    var urlHelper = {
        //获取域名
        getDomain: function () {
            if (location.host.indexOf('localhost')!=-1)
                return 'http://localhost:62087/';
            return 'http://www.s.com/';
        },
        getController: function (controller) {
            return this.getDomain() + controller;
        },
        getAction: function (controller, action) {
            var url = this.getDomain();
            if (controller)
                url += controller + '/';
            if (action)
                url += action + '/';
            return url;
        }
    }
    var accountOperate = {
        //1.获取当前回话id
        getSessionID: function (successCB) {
            var _this = this;
            ////判断id是否已经存在，如果已经存在不在请求
            //$.get(urlHelper.getAction("login", 'GetSessionID'), {
            //}, function (data) {
            //    if (successCB)
            //        successCB(data);
            //    //保存在本地
            //    $.cookie('_token_', data, { path: '/' });
            //});
            //因为跨域所以需要待着cookie
            $.ajax({
                url: urlHelper.getAction("login", 'GetSessionID'),
                data: {},
                xhrFields: {
                    withCredentials: true  //支持附带详细信息
                },
                crossDomain: true,//请求偏向外域
                success: function (data) {
                    if (successCB)
                        successCB(data);
                    //保存在本地
                    $.cookie('_token_', data, { path: '/' });
                }
            });
        },
        //获取cookie中的sessionid
        getToken: function () {
            return $.cookie('_token_');
        },
        //判断token的用户是否登录
        getinfo: function (token, callBack) {
            var _this = this;
            if (token) {

                console.info(urlHelper.getAction("login", 'GetLogin'));
                $.get(urlHelper.getAction("login", 'GetLogin'), {
                    sessionid: token
                }, function (data) {

                    if (callBack)
                        callBack(data);
                });
            }
        },
        //初始化登录处理
        login_init: function (errorCB, sucessCB) {
            var _this = this;
            //判断是否登录
            if (_this.getuser()) {

            } else {

                //获取token
                _this.getSessionID(function (sessionid) {
                    //获取登录信息
                    //alert(sessionid);
                    console.info(sessionid);

                    _this.getinfo(sessionid, function (data) {
                        if (data != 0) {
                            $.cookie('user', data);
                        }
                    });
                });


                //Upgrade - Insecure - Requests:"1"


                ////判断token是否登录
                //if (_this.getToken()) {
                //    //获取登录信息
                //    _this.getinfo(_this.getToken(), function (data) {
                //        if (data != 0) {
                //            $.cookie('user', data);
                //            if (successCB) successCB(data);
                //        } else {
                //            alert('亲，您没有登录');
                //            if (errorCB) errorCB();
                //        }
                //    });
                //} else {
                //    //获取token
                //    _this.getSessionID(function (sessionid) {
                //        //获取登录信息
                //        _this.getinfo(sessionid, function (data) {
                //            if (data != 0) {
                //                $.cookie('user', data);
                //            }
                //        });
                //    });

                //}
            }
        },
        //判断用户是否已经登录
        getuser: function () {
            console.info(this.getToken());
            return $.cookie('user');
        },
        //指定用户名密码，登录用户
        checkuser: function (username, pwd, sucessCB) {
            var _this = this;
            $.post(urlHelper.getAction("login", 'checkuser'), {
                token: _this.getToken(),
                username: username,
                pwd: pwd
            }, function (data) {
                if (data == '0') {
                    alert('登录失败');
                    //if (callBack) callBack(data);
                } else {
                    if (sucessCB) sucessCB(data);
                }
            });
        }
    }
    window.account = accountOperate;
})();
